This invention relates to network switches and, more specifically, to a technique for efficiently interconnecting switches in a data communications network.
Data communication in a computer network involves the exchange of data between two or more entities interconnected by communication links, segments and subnetworks. These entities are typically software programs executing on hardware computer platforms, such as end stations and intermediate stations. An example of an intermediate station may be a switch or router which interconnects the communication links and subnetworks to enable transmission of data between the end stations.
Communication software executing on the end stations correlate and manage data communication with other end stations. The stations typically communicate by exchanging discrete packets or frames of data according to predefined protocols. In this context, a protocol consists of a set of rules defining how the stations interact with each other. In addition, network routing software executing on the routers allow expansion of communication to other end stations. Collectively, these hardware and software components comprise a communications network and their interconnections are defined by an underlying architecture.
Modem communications network architectures are typically organized as a series of hardware and software levels or xe2x80x9clayersxe2x80x9d within each station. These layers interact to format data for transfer between, e.g., a source station and a destination station communicating over the network. Predetermined services are performed on the data as it passes through each layer and the layers communicate with each other by means of the predefined protocols. An example of such a communications architecture is the Internet communications architecture.
The Internet architecture is represented by four layers which are termed, in ascending interfacing order, the network interface, internetwork, transport and application layers. These layers are arranged to form a protocol stack in each communicating station of the network. FIG. 1 illustrates a schematic block diagram of prior art Internet protocol stacks 125 and 175 used to transmit data between a source station 110 and a destination station 150, respectively, of a network 100. As can be seen, the stacks 125 and 175 are physically connected through a communications channel 180 at the network interface layers 120 and 160. For ease of description, the protocol stack 125 will be described.
In general, the lower layers of the communications stack provide internetworking services and the upper layers, which are the users of these services, collectively provide common network application services. The application layer 112 provides services suitable for the different types of applications using the network, while the lower network interface layer 120 accepts industry standards defining a flexible network architecture oriented to the implementation of LANs.
Specifically, the network interface layer 120 comprises physical and data link sublayers. The physical layer 126 is concerned with the actual transmission of signals across the communication channel and defines the types of cabling, plugs and connectors used in connection with the channel. The data link layer (i.e., xe2x80x9clayer 2xe2x80x9d) is responsible for transmission of data from one station to another and may be further divided into two sublayers: Logical Link Control (LLC 122) and Media Access Control (MAC 124).
The MAC sublayer 124 is primarily concerned with controlling access to the transmission medium in an orderly manner and, to that end, defines procedures by which the stations must abide in order to share the medium. In order for multiple stations to share the same medium and still uniquely identify each other, the MAC sublayer defines a hardware or data link address called a MAC address. This MAC address is unique for each station interfacing to a LAN. The LLC sublayer 122 manages communications between devices over a single link of the network.
The primary network layer protocol of the Internet architecture is the Internet protocol (IP) contained within the internetwork layer 116 (i.e., xe2x80x9clayer 3xe2x80x9d). IP is a network protocol that provides internetwork routing and that relies on transport protocols for end-to-end reliability. An example of such a transport protocol is the Transmission Control Protocol (TCP) contained within the transport layer 114. The term TCP/IP is commonly used to refer to the Internet architecture.
Data transmission over the network 100 therefore consists of generating data in, e.g., sending process 104 executing on the source station 110, passing that data to the application layer 112 and down through the layers of the protocol stack 125, where the data are sequentially formatted as a frame for delivery onto the channel 180 as bits. Those frame bits are then transmitted over an established connection of channel 180 to the protocol stack 175 of the destination station 150 where they are passed up that stack is to a receiving process 174. Data flow is schematically illustrated by solid arrows.
Although actual data transmission occurs vertically through the stacks, each layer is programmed as though such transmission were horizontal. That is, each layer in the source station 110 is programmed to transmit data to its corresponding layer in the destination station 150, as schematically shown by dotted arrows. To achieve this effect, each layer of the protocol stack 125 in the source station 110 typically adds information (in the form of a header) to the data generated by the sending process as the data descends the stack.
For example, the internetwork layer encapsulates data presented to it by the transport layer within a packet having a network layer header. The network layer header contains, among other information, source and destination (logical) network addresses needed to complete the data transfer. The data link layer, in turn, encapsulates the packet in a frame that includes a data link layer header containing information required to complete the data link functions, such as (physical) MAC addresses. At the destination station 150, these encapsulated headers are stripped off one-by-one as the frame propagates up the layers of the stack 175 until it arrives at the receiving process.
A network switch logically separates the segments within a network and generally operates at layer 2 to transfer frames among entities of the network using MAC addresses. Typically, the switch is a computer comprising a plurality of ports that couple the switch to the other network entities over various types of network segments and media, such as Ethernet, fiber (FDDI) or token ring connections. A network entity may consist of any device that xe2x80x9csourcesxe2x80x9d (i.e., transmits) or xe2x80x9csinksxe2x80x9d (i.e., receives) frames over such media. A router, on the other hand, is typically a computer that connects different subnetworks and directs network traffic based on destination network layer addresses (layer 3) of the packets.
Switches and routers generally perform the same operation; namely, switching of data frames/packets. That is, switches use layer 2 switching to forward frames and routers use layer 3 switching to route packets. As noted, a difference between layer 2 and layer 3 switching involves the type of information inside the frame/packet that is used to determine the correct output port. Layer 2 switching generally comprises a xe2x80x9cstore-and-forwardxe2x80x9d operation in which a frame arrives on an input port of the switch from an input media and is forwarded to an output port for transmission over an output media. With layer 2 switching, frames are switched between ports based on MAC address information stored and maintained in a forwarding database (table) of the switch. With layer 3 switching, packets are xe2x80x9croutedxe2x80x9d based on network layer information.
Layer 2 switching generally prevents frames transferred between two ports from being forwarded to other ports of the switch. Restriction of extraneous traffic across switched port interfaces increases bandwidth over the network. Network performance can be further enhanced by limiting traffic through the use of virtual area local networks (VLANs). A VLAN is a logical group of end stations, independent of physical location, that restrains network traffic as a single broadcast domain. That is, only end stations defined within the VLAN receive a frame broadcast from the VLAN.
A trunk is a physical link between two switches (or between a switch and a router) that carries multiple logical links for VLANs. Traffic belonging to different VLANs may be multiplexed over the trunk using a protocol. An example of such a protocol is the Interswitch Link (ISL) protocol developed by Cisco Systems, Inc. of San Jose, Calif. Standard Ethernet, FDDI, or token ring frames, together with their associated VLAN information, are transmitted over a trunk, such as an ISL link, in accordance with the ISL protocol. The VLAN information is contained within a field of an ISL frame/packet that encapsulates the basic data frame. An example of an ISL encapsulation mechanism suitable for use with the present invention is described in U.S. Pat. No. 5,742,604, titled Interswitch Link Mechanism for Connecting High-Performance Network Switches, by Edsall et al., which patent is hereby incorporated by reference as though fully set forth herein.
The dynamic ISL (DISL) protocol is a protocol that dynamically configures trunk ports between ISL-capable switches. Broadly stated, DISL synchronizes the configuration of two interconnected port interfaces to be of the same type, either xe2x80x9cnon-trunkxe2x80x9d (ISL non-configured) or xe2x80x9ctrunkxe2x80x9d (ISL configured). Prior attempts to configure trunk ports required entry of command line interface (CLI) or simple network management protocol (SNMP) commands at both switches in order to set a port to trunk status. The DISL protocol generally obviates the need for such command entries as long as there is a point-to-point ISL connection between the two switches.
However, trunk ports of switches may be configured to support a plurality of trunk encapsulation types, such as IEEE 802.1Q and ISL. IEEE 802.1Q addresses the standardization of VLANs and associated protocols for controlling the propagation of multicast/broadcast traffic over VLANs. To that end, IEEE 802.1Q specifies details of a VLAN frame format used to carry VLAN IDs (VIDs), along with procedures for xe2x80x9ctaggingxe2x80x9d, modifying and xe2x80x9cuntaggingxe2x80x9d frames.
In the case of a switch that supports multiple trunk encapsulation types, a user must generally be aware of those trunk capabilities to ensure proper and reliable operation of the switch. For example, if the port at one end of a trunk is configured to a particular trunk encapsulation type, the port at the other end of the trunk must also be configured to that type; otherwise, there will be a loss of connectivity between the switches. As noted, a user typically manually configures the ports through the use of CLI/SNMP. Such an arrangement is inefficient and burdensome, and often creates problems for network management applications. The present invention is directed to alleviating such network management problems.
The present invention relates to a dynamic trunk protocol (DTP) that enables dynamic negotiation of trunk encapsulation types between ports connecting intermediate stations in a computer network. The stations are preferably switches interconnected by a trunking mechanism used to transport logical links for virtual local area networks (VLANs) between the ports. Negotiation between the ports results in synchronization of their configurations to a common trunk encapsulation type. In particular, the DTP synchronizes each trunk capable port to a common Interswitch Link (ISL), IEEE 802.1Q or non-trunk port configuration.
In accordance with the invention, the DTP manifests as a series of message exchanges between a local port and neighbor port over the trunking mechanism which includes a physical link and an associated protocol for maintaining VLAN associations of frames intact during transfer between the switches. Each message embodies a format that conveys novel configuration information representative of the status and type of interface circuitry of the port creating the message. The created message is then sent to the other port over the link and, if the configuration information differs, a negotiation process ensues between the ports that terminates with a mutually agreeable common configuration.
Advantageously, the invention reduces user intervention since only one end of the link (e.g., the local port) needs to be configured to initiate DTP negotiation. If the neighbor port fails to be of the same type of the local port during negotiation, DTP synchronizes the ports to a similar type by periodically advertising their status.